package com.jy.wms.service;

import com.github.pagehelper.Page;
import com.github.pagehelper.PageHelper;
import com.jy.wms.common.annotions.BaseServiceDescribe;
import com.jy.wms.common.base.BaseService;
import com.jy.wms.common.base.ServiceException;
import com.jy.wms.common.base.SucessException;
import com.jy.wms.dao.SysLogMapper;
import com.jy.wms.pojo.SysLog;
import org.springframework.stereotype.Service;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

    /**
    * @ClassName: SysLogService.java
    * @Description: TODO(这里用一句话描述这个类的作用)
    * @Author liyi
    * @Date Wed Sep 13 15:46:03 CST 2017
    */

    @Service
    public class SysLogService extends BaseService<SysLogMapper,SysLog> {

        /**
         * 插入一条记录
         * @param jb    错误级别 0调试 1信息 2警告 3错误 4严重错误
         * @param mk    模块
         * @param an    按钮
         * @param xx    信息
         * @param ycyy  异常原因
         * @param dlm   登录名
         * @param ip    Ip
         * @return
         */
    public Integer baseInsert( String jb,String mk,String an,String xx,String ycyy,String dlm,String ip ){
        SysLog entity = new SysLog();
        SimpleDateFormat sdf= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        entity.setJlsj(sdf.format(new Date()));
        entity.setJb(jb);
        entity.setMk(mk);
        entity.setAn(an);
        entity.setXx(xx);
        entity.setYcyy(ycyy);
        entity.setDlm(dlm);
        entity.setIp(ip);
        entity.setClzt("0");
         return dao.baseInsert( entity );
    }

   /**
    * 插入一条记录（匹配有值的字段）
    * @param entity 实体对象
    * @return int
    */
    public Integer baseInsertSelective( SysLog entity ){
         return dao.baseInsertSelective( entity );
    }

   /**
    * 删除（根据主键ID删除）
    * @param id 主键
    * @return int
    */
    public Integer baseDeleteByPrimaryKey( String id ){
         return dao.baseDeleteByPrimaryKey( id );
    }

   /**
    * 删除（根据ID 批量删除）
    * @param idList 主键ID列表
    * @return int
    */
    public Integer baseDeleteBathPrimaryKeys( List<String> idList ){
         return dao.baseDeleteBathPrimaryKeys( idList );
    }

    /**
    * 分页查询
    * @param entity 实体
    * @return Page<SysLog>
    */
    @BaseServiceDescribe(moduleName = "操作日志",btnName = "分页查询操作日志")
    public Page<SysLog> baseSelectPage(SysLog entity )throws Exception{
        try {
            PageHelper.startPage(entity.getPage(),entity.getRows());
            return (Page<SysLog>)dao.baseSelectPage( entity );
        } catch (Exception e) {
            e.printStackTrace();
            throw new ServiceException("查询系统日志",e);
        }
    }

   /**
    * 查询（根据主键ID查询）
    * @param id 主键ID
    * @return SysLog
    */
   @BaseServiceDescribe(moduleName = "操作日志",btnName = "查询唯一操作日志")
    public SysLog baseSelectByPrimaryKey( String id )throws Exception{
        try {
            return dao.baseSelectByPrimaryKey( id );
        } catch (Exception e) {
            e.printStackTrace();
            throw new ServiceException("查询唯一操作日志",e);
        }
    }

   /**
    * 查询（根据ID 批量查询）
    * @param idList 主键ID列表
    * @return list
    */
    public Integer baseSelectBathPrimaryKeys( List<SysLog> idList ){
         return dao.baseSelectBathPrimaryKeys( idList );
    }

   /**
    *修改 （匹配有值的字段）
    * @param entity 主键ID列表
    * @return int
    */
   @BaseServiceDescribe(moduleName = "系统日志管理",btnName = "处理信息填写")
    public void baseUpdateByPrimaryKeySelective( SysLog entity ) throws Exception{
        try {
             Integer falg = dao.baseUpdateByPrimaryKeySelective( entity );
             if(falg < 1){
                 throw new SucessException("修改信息未加入数据库");
             }
        } catch (Exception e) {
            e.printStackTrace();
            throw new ServiceException("处理完成",e);
        }
    }

   /**
    *修改（根据主键ID修改）
    * @param entity 主键ID列表
    * @return int
    */
    public Integer baseUpdateByPrimaryKey( SysLog entity ){
         return dao.baseUpdateByPrimaryKey( entity );
    }
}
